#include "./WizAccessorFile.hpp"

namespace Wiz
{
    namespace Accessor
    {
        namespace File
        {
            ::Wiz::Bool::Type   Type::Read(::Wiz::Byte::OutPtr BuffPtr, ::Wiz::Size::In ReadSize)
            {
                return ::Wiz::File::Read(m_StreamHandler, BuffPtr, ReadSize);
            }
            ::Wiz::Bool::Type   Type::Write(::Wiz::Byte::InPtr DataPtr, ::Wiz::Size::In WriteSize)
            {
                return ::Wiz::File::Write(m_StreamHandler, DataPtr, WriteSize);
            }

            ::Wiz::Bool::Type   Type::ReadAndAdvance(::Wiz::Byte::OutPtr BuffPtr, ::Wiz::Size::In ReadSize)
            {
                return ::Wiz::File::ReadAndAdvance(m_StreamHandler, BuffPtr, ReadSize);
            }
            ::Wiz::Bool::Type   Type::WriteAndAdvance(::Wiz::Byte::InPtr DataPtr, ::Wiz::Size::In WriteSize)
            {
                return ::Wiz::File::WriteAndAdvance(m_StreamHandler, DataPtr, WriteSize);
            }

            ::Wiz::USize32::Type  Type::CurrentPosition()
            {
                return ::Wiz::File::CurrentPosition(m_StreamHandler);
            }
            ::Wiz::Void::Type   Type::MoveTo(::Wiz::USize32::In Pos)
            {
                ::Wiz::File::MoveTo(m_StreamHandler, Pos);
            }
            ::Wiz::Void::Type   Type::MoveToBegin()
            {
                ::Wiz::File::MoveToBegin(m_StreamHandler);
            }
            ::Wiz::Void::Type   Type::MoveToEnd()
            {
                ::Wiz::File::MoveToEnd(m_StreamHandler);
            }
            ::Wiz::Void::Type   Type::Move(::Wiz::USize32::In InOffset)
            {
                ::Wiz::File::Move(m_StreamHandler, InOffset);
            }

            ::Wiz::Bool::Type Type::Expand(::Wiz::USize32::In ESz)
            {
                ::Wiz::Byte::Ptr TempPtr = new ::Wiz::Byte::Type[ESz];
                ::Wiz::File::Expend(m_StreamHandler, TempPtr, ESz);
                delete[] TempPtr;
                return ::Wiz::Bool::True;
            }
            ::Wiz::Bool::Type Type::Expand(::Wiz::Byte::Ptr DataPtr, ::Wiz::USize32::In ESz)
            {
                ::Wiz::File::Expend(m_StreamHandler, DataPtr, ESz);
                return ::Wiz::Bool::True;
            }
        } /// end of namespace File
    } /// end of namespace Accessor
} /// end of namespace Wiz
